/*
 * > /*
>  * INSANE - Interactive Structural Analysis Environment
>  *
>  * Copyright (C) 2003-2004
>  * Universidade Federal de Minas Gerais
>  * Escola de Engenharia
>  * Departamento de Engenharia de Estruturas
>  *
>  * Author's email :     insane@dees.ufmg.br
>  * Author's Website :   http://www.dees.ufmg.br/insane
>  *
>  * This program is free software; you can redistribute it and/or
>  * modify it under the terms of the GNU General Public License
>  * as published by the Free Software Foundation; either version 2
>  * of the License, or any later version.
>  *
>  * This program is distributed in the hope that it will be useful,
>  * but WITHOUT ANY WARRANTY; without even the implied warranty of
>  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>  * GNU General Public License for more details.
>  *
>  * You should have received a copy of the GNU General Public License
>  * along with this program; if not, write to the Free Software
>  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-
> 1307, USA.
 *
 */

package br.ufmg.dees.insane.ui.rich.postp.postp_view;

import java.awt.BorderLayout;
import java.awt.Color;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.Observable;
import java.util.Observer;

import javax.swing.JInternalFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

import br.ufmg.dees.insane.solution.EquilibriumPath;


public class ConsolePostp extends JInternalFrame implements Observer {
	
 

	/**   */
	private static final long serialVersionUID = 1L;
	
	private JTextArea textArea;
	private JScrollPane scrollPane;

	/**
	 * The constructor method. <br>
	 * Calls the init() method throwing an exception.
	 */
	public ConsolePostp() {
	    textArea = new JTextArea();
	    textArea.setBackground(Color.BLACK);
	    this.textArea.setForeground(Color.GREEN);
	    this.textArea.setAutoscrolls(true); 
        this.scrollPane = new JScrollPane(textArea);
        scrollPane.setAutoscrolls(true);
        this.add(scrollPane, BorderLayout.CENTER);
        this.scrollPane.setViewportView(this.textArea); 
   
        this.setTitle("IConsoleNonLinearWriter");
		this.setClosable(true);
		this.setResizable(true);
		this.setAutoscrolls(true);
	}
int cont=0;

public void update(Observable arg0, Object arg) {
	cont++;
	   DecimalFormat fmt = new DecimalFormat();
       DecimalFormatSymbols fsym = new DecimalFormatSymbols();
       fsym.setDecimalSeparator('.');
       fmt.setDecimalFormatSymbols(fsym);
       fmt.applyPattern("0.000E00");
       DecimalFormat fmt2 = new DecimalFormat();
       fmt2.applyPattern("000");
       
       String s = "\nSTEP-"+String.valueOf(fmt2.format(((EquilibriumPath)arg).getStep().getLabel()))+
       "\tLOAD_FACTOR="+String.valueOf(fmt.format(((EquilibriumPath)arg).getStep().getLoadFactorTotal()))+
       "\tINTERACTION-"+String.valueOf(fmt2.format(((EquilibriumPath)arg).getStep().getCurrentIteration()))+
       "\tERROR="+String.valueOf(fmt.format(((EquilibriumPath)arg).getStep().getCurrentError()));
       
       if(((EquilibriumPath)arg).getStep().getConvergence()) {
           s+="\t***CONVERGENCE***\n";
       }
       this.scrollPane.getVerticalScrollBar().setValue(textArea.getHeight()+50);
       this.textArea.append(s);
}


	
//*****************************************************************************

}